﻿//
// Copyright(C) MixModes Inc. 2011
// 

using System.Windows.Input;

namespace MixModes.Synergy.Web.VisualFramework.Behaviors
{
    /// <summary>
    /// Mouse behavior interface
    /// </summary>
    public interface IMouseBehavior
    {
        /// <summary>
        /// Indicates that mouse has entered the element associated with the behavior
        /// </summary>
        /// <param name="args">The <see cref="System.Windows.Input.MouseEventArgs"/> instance containing the event data.</param>
        void OnMouseEnter(MouseEventArgs args);

        /// <summary>
        /// Indicates that mouse has moved on the element associated with the behavior
        /// </summary>
        /// <param name="args">The <see cref="System.Windows.Input.MouseEventArgs"/> instance containing the event data.</param>
        void OnMouseMove(MouseEventArgs args);

        /// <summary>
        /// Indicates that mouse has left the element associated with the behavior
        /// </summary>
        /// <param name="args">The <see cref="System.Windows.Input.MouseEventArgs"/> instance containing the event data.</param>
        void OnMouseLeave(MouseEventArgs args);

        /// <summary>
        /// Indicates that mouse button has been released on the element associated with the behavior
        /// </summary>
        /// <param name="args">The <see cref="System.Windows.Input.MouseEventArgs"/> instance containing the event data.</param>
        void OnMouseUp(MouseEventArgs args);
    }
}
